µhooks
Social Media Photo by Tatiana Rodriguez on Unsplash
micro hooks is a simplified ~0.8K alternative to augmentor, with the following differences:
hooked(fn)
is the augmentor entry point equivalent- multiple states update are applied at once asynchronously (these are a Promise.then(...) away)
useEffect
is also applied asynchronously- there are no extra options whatsoever so it's less configurable
- there is no
contextual
export, as every hook can have a context passed along, whenever it's needed, or a good idea at all
The reason for this module to exist is to explore a slightly different pattern that is not stack-based, but that should perform overall better in real-world use cases, thanks to its smaller size and its reduced amount of invokes applied in bulks.
import {
hooked, dropEffect, hasEffect,
createContext, useContext,
useCallback, useMemo,
useEffect, useLayoutEffect,
useReducer, useState, useRef
} from 'uhooks';
const Counter = (start) => {
const [count, setCount] = useState(start);
const {current} = useRef({});
current.increment = () => {
setCount(count + 1);
};
console.log(count);
return current;
};
const comp1 = hooked(Counter)(1);
const comp2 = hooked(Counter)(1);
comp1.increment();